package com.qf.mapper;

import com.qf.dto.OrdersDto;
import com.qf.entity.Address;
import com.qf.entity.Goods;
import com.qf.entity.Orders;
import com.qf.entity.Pie;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * (Orders)表数据库访问层
 *
 * @author makejava
 * @since 2020-07-02 10:14:09
 */
public interface OrdersDao {

    /**
     * 通过ID查询单条数据
     *
     * @param oId 主键
     * @return 实例对象
     */
    Orders queryById(Integer oId);


    List<OrdersDto> getAllOno();

    List<Goods> getOrderGoodsByono(String ono1);

    List<OrdersDto> getOrdersById(String ono);

    String getOrdersUserById(int userId);

    List<Address> getAddressByUserId(int userId);

    Integer updOrderAdress(@Param("param1") String ono, @Param("param2") int aid);

    /**
     * 查询指定行数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<Orders> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param orders 实例对象
     * @return 对象列表
     */
    List<Orders> queryAll(Orders orders);


    List<OrdersDto> getAllOrders();


    /**
     * 新增数据
     *
     * @param orders 实例对象
     * @return 影响行数
     */
    int insert(Orders orders);

    /**
     * 修改数据
     *
     * @param orders 实例对象
     * @return 影响行数
     */
    int update(Orders orders);

    /**
     * 通过主键删除数据
     *
     * @param oId 主键
     * @return 影响行数
     */
    int deleteById(Integer oId);

    //每日销售额统计
    List<Map<String, Integer>> getTodayMoney();

    //各类商品销售额统计、占比
    List<Pie> getItemMoney();
}